import Promise from "../promise";

let promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve("成功了！");
        // reject("失败了！");
    }, 1000);
    // 同步，实际开发中这种情况很少，Promise设计的初衷就是用来处理异步的，但是我们框架里还是要支持同步的。
    // resolve("成功了！");
    // reject("失败了！");
});

// 用于测试单级异步和then联动
// 1.promise 的 xxxCallbacks 里保存的是 then1() 返回的Promise对象的executor中的回调函数, xxxCallbacks.length = 1;
// 2.then1 的 xxxCallbacks 里保存的是 then2() 返回的Promise对象的executor中的回调函数, xxxCallbacks.length = 1;
// 3.then2 的 xxxCallbacks 里保存的是 then3() 返回的Promise对象的executor中的回调函数, xxxCallbacks.length = 1;
// 4.then3 的 xxxCallbacks 是空的, xxxCallbacks.length = 0;
promise.then((resolveData1) => {
    console.log("第1个then执行成功:", resolveData1);
    return "ok1";
}, (rejectData1) => {
    console.log("第1个then执行失败:", rejectData1);
    return "failed1";
}).then((resolveData2) => {
    console.log("第2个then执行成功:", resolveData2);
    return "ok2";
}, (rejectData2) => {
    console.log("第2个then执行失败:", rejectData2);
    return "failed2";
}).then((resolveData3) => {
    console.log("第3个then执行成功:", resolveData3);
}, (rejectData3) => {
    console.log("第3个then执行失败:", rejectData3);
})

export {}
